@怪人
2年前 提问
1个回答
MySQL 加固方法有什么
Ann
2年前
- 修改DBA登录密码在shell环境下执行
mysqladmin -u root password
- 连续输入两次新密码非首次修改
mysqladmin -u root password -p原密码
- 连续输入两次新密码在mysql下执行t-sql语句
update user set password=password(‘密码') where user='root';
flush privileges;
- 删除测试库
show databases;
drop?database?test;
- 删除非root用户
use mysql;
delete from user where not (user='root') ;
- 删除密码为空的root用户
delete from user where user='root' and password=’’;
flush privileges;
- 变更DBA用户名
use mysql;
update user set user=”nicai " where user="root";
flush privileges;
- 在账户管理时使用加密算法
use mysql;
insert into users values (1,password(123.com),'test');
- 更改mysql启动用户修改my.cnf文件
vim /etc/my.cnf
加入如下内容
[mysqld]
user=mysql
- 限制远程连接数
修改my.cnf文件,去掉注释符号vi /etc/my.cnf加入如下内容
[mysqld]
max_connections = 5
max_user_connections=2
或者限制某个用户,在mysql中执行
GRANT test ON *.* TO testdb@localhost MAX_USER_CONNECTIONS 2;
- 关闭远程管理数据库
修改my.cnf文件,去掉注释符号
vi /etc/my.cnf
修改如下内容
#skip-networking
↓
skip-networking
- 清理mysql命令历史
注意清理家目录中的.mysql_history
ln -s /dev/null /root/.mysql_history
禁止使用明文模式登陆mysql
mysql -u root -p123.com
应使用隐藏密码方式
mysql -u root -p
- 禁止将表导出到文件
在mysql中修改用户的文件权限
update user set File_priv=‘N’ where user=‘用户名';
检查配置文件是否存在不合理信息
grep secure_file_priv /etc/my.cnf
secure_file_priv= xxx路径
*********导出的测试命令************
select * from mysql.user into outfile 'test1.txt' fields terminated by ',';
- 日常备份数据库
mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob > 备份路径/文件名时间戳.sql